package cn.tannn.cat.file.server.controller.manage.dto;

import cn.tannn.cat.file.sdk.config.Aws3Config;
import cn.tannn.cat.file.sdk.config.LocalConfig;
import cn.tannn.cat.file.sdk.config.MinioConfig;
import cn.tannn.cat.file.sdk.config.QiNiuConfig;
import cn.tannn.cat.file.server.entity.FileStorageConfig;
import com.alibaba.fastjson2.JSONObject;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotEmpty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 新增存储器配置元数据
 *
 * @author tnnn
 * @version V1.0
 * @date 2024-03-09 20:56
 */
@Schema(description = "编辑存储器配置元数据")
@ToString
@Getter
@Setter
public class EditStorageConfig {


    /**
     * 存储配置Json
     * @see Aws3Config
     * @see LocalConfig
     * @see MinioConfig
     * @see QiNiuConfig
     */
    @Schema(description ="存储配置Json[根据存储器配置不同的json对象]")
    @NotEmpty
    private JSONObject config;


    /**
     * 备注
     */
    @Schema(description ="备注")
    private String remark;



    public FileStorageConfig toFileConfig(FileStorageConfig fileConfig) {
        fileConfig.setConfig(config);
        fileConfig.setRemark(this.remark);
        return fileConfig;
    }
}
